function output = my_getFieldFromStructWithRegexp(S,expression)
    % output = getFieldFromStructWithRegexp(S,expression)
    %
    % --------自定义函数--------
    % 函数名称：getFieldFromStructWithRegexp()
    % 函数说明：能够从结构体中，找到符合正则表达式的field名（string list）
    % 函数输入：
    %   S： struct，结构体,只能在一级结构体中搜寻field
    %   expression： 正则表达式的匹配模式
    % 函数输出：
    %   output: string list，符合条件的field
    % 作者：sid
    % LOG：
    %   2021/11/15 ver 0.1: create
    %   2021/11/15 ver 0.2: fix,当指定变量的时候回出现返回重复的fieldname

    arguments  
        S struct
        expression char
    end

    FieldNames = string(fieldnames(S));

    output = regexp(FieldNames,expression,'match');
    indice = cellfun(@isempty,output);
    output = unique(string(output(~indice)));
    if isempty(output)
        error('没有符合条件的变量，需要重新构建正则表达式')
    end
    TagIsField = ~isfield(S, output);
    if any(TagIsField)
        error('正则表达式不能够指定变量，需要重新构建正则表达式，考虑*和?的使用')
    end

end